The following display device drivers are available,
Device Name Invocation Environment
xgldrvs xgldrvs -s- SGI 4D GL regular driver.
xogldrvs xogldrvs -s- SGI 4D Open GL/Motif driver.
xgladap xgladap -s- SGI 4D GL adaptive isocurve
experimental driver.
x11drvs x11drvs -s- X11 driver.
xmtdrvs xmtdrvs -s- X11 Motif driver.
xglmdrvs xglmdrvs -s- SGI 4D GL and X11/Motif driver.
wntdrvs wntdrvs -s- IBM PC Windows NT driver.
wntgdrvs wntgdrvs -s- IBM PC Windows NT Open GL driver.
os2drvs os2drvs -s- IBM PC OS2 2.x driver.
amidrvs amidrvs -s- AmigaDOS 2.04+ driver.
nuldrvs nuldrvs -s- [-d] [-D] A device to print the
object stream to stdout.
All display devices are clients communicating with the server (IRIT) using IPC (inter process communication). On Unix and Window NT sockets are used. A Windows NT client can talk to a server (IRIT) on a unix host if hooked to the same netwrok. On OS2 pipes are used, and both the client and server must run on the same machine. On AmigaDOS exec messages are used, and both the client and server must run on the same machine.
While all display devices support object(s) transformations via a transformation control window, many of the display devices allow one to click and drag on the viewing window to rotate (Left Button) and to translate (Right Button). This mode exploits the two degrees of freedom of the mouse to provide intuitive dual axis rotation and translation.
The server (IRIT) will automatically start a client display device if the IRIT_DISPLAY environment variable is set to the name and options of the display device to run. For example:
setenv IRIT_DISPLAY xgldrvs -s-
The display device must be in a directory that is in the path environment variable. Most display devices require the '-s-' flags to run in a non-standalone mode, or a client-server mode. Most drivers can also be used to display data in a standalone mode (i.e., no server). For example:
xgldrvs -s solid1.dat irit.mat
Effectively, all the display devices are also data display programs (poly3d, which was the display program prior to version 4.0, is retired in 4.0). Therefore some functionality is not always as expected. For example, the quit button will always force the display device to quit, even if poped up from IRIT, but will not cause IRIT to quit as might logically expected. In fact, the next time IRIT will try to communicate with the display device, it will find the broken connection and will start up a new display device.
Most display devices recognize attributes found on objects. The following attributes are usually recognized (depending on the device capability.):
COLOR: Selects the drawn color of the object to be one of the 8/16 predefined colors in the IRIT system: white, red, green, blue, yellow, cyan, magenta, black. RGB: Overwrites (if supported) the COLOR attribute (if given) and sets the color of the object to the exact prescribed RGB set. DWIDTH: Sets the width in pixels of the drawn object, when drawn as a wireframe.
All display devices recognize all the command line flags and all the configuration options in a configuration file, as described below. The display devices will make attemps to honor the requests, to the best of their ability. For example, only xgldrvs can render shaded models, and so only it will honor a DrawSolid configuration options.
???drvs [-s] [-u] [-n] [-N] [-i] [-c] [-C] [-m] [-a] [-g x1,x2,y1,y2]
[-G x1,x2,y1,y2] [-I #IsoLines] [-F PolygonOpti FineNess]
[-f PolylineOpti SampPerCrv] [-l LineWidth] [-r] [-A Shader] [-B]
[-2] [-d] [-D] [-L NormalLen] [-4] [-b BackGround] [-S LgtSrcPos]
[-Z ZMin ZMax] [-M] [-P] [-x ExecAnim] [-z] DFiles
-s: Runs the driver in a Standalone mode. Otherwise, the driver will attempt to communicate with the IRIT server. -u: Forces a Unit matrix. That is, input data are not transformed at all. -n: Draws normals of vertices. -N: Draws normals of polygons. -i: Draws internal edges (created by IRIT) - default is not to display them, and this option will force displaying them as well. -c: Sets depth cueing on. Drawings that are closer to the viewer will be drawn in more intense color. -C: Cache the piecewise linear geometry so curves and surface can be redisplay faster. Purging it will free memory, on the other hand. -m: Provides some more information on the data file(s) parsed. -a: Sets the support of antialiased lines. -g x1,x2,y1,y2: Prescribes the position and location of the transformation window by prescribing the domain of the window in screen space pixels. -G x1,x2,y1,y2: Prescribes the position and location of the viewing window by prescribing the domain of the window in screen space pixels. -I #IsoLines: Specifies number of isolines per surface, per direction. A specification of zero isolines is possible only on the command line and it denotes the obvious. -F PolyOpti FineNess: Controls the method used to approximate surfaces into polygons. See the variable POLY_APPROX_OPT for the meaning of FineNess. See also -4. -f PolyOpti SampPerCrv: Controls the method used to approximate curves into polylines. If PolyOpti == 0, equally spaced intervals are used. Otherwise, an adaptive subdivision that optimizes the samples is employed. -l LineWidth: Sets the linewidth, in pixels. Default is one pixel wide. -r: Rendered mode. Draws object as solid. -A Shader: Shader can be one of 1 (Flat), 2 (Gouraud), or 3 (Phong). -B: Back face culling of polygons. -2: Double buffering. Prevents screen flicker on the expense of possibly less colors. -d: Debug objects. Prints to stderr all objects read from communcation port with the server IRIT. -D: Debug input. Prints to stderr all characters read from communcation port with the server IRIT. Lowest level of communication. -L NormalLen: Sets the length of the drawn normals in thousandths of a unit. -4: Forces four polygons per almost flat region in the surface to polygon conversion. Otherwise two polygons only. -b BackGround: Sets the background color as three RGB integers in the range of 0 to 255. -S LgtSrcPos: Sets the lighting via the light source position. -Z ZMin ZMax: Sets the near and far Z clipping planes. -M: Draw control mesh/polygon of curves and surfaces, as well. -x ExecAnim: Command to execute as a subprocess every iteration of display of an animation sequence. This command can for example save the display into an image file, saving the animation sequence. One parameter is passed, which is an running index starting from one. -P: Draws curves and surfaces (surfaces are drawn using a set of isocurves, see -I, or polygons, see -f). -z: Prints version number and current defaults.
The configuration file is read before the command line options are processed. Therefore, all options in this section can be overriden by the appropriate command line option, if any.
TransPrefPos: Preferred location (Xmin, YMin, Xmax, Ymax) of the transformation window. ViewPrefPos: Preferred location (Xmin, YMin, Xmax, Ymax) of the viewing window. BackGround: Background color. Same as '-b'. Internal: Draws internal edges. Same as '-i'. LightSrcPos: Sets the location of the (first) light source as a rational four coefficient location. W of zero sets the light source at infinity. ExecAnim: Executes animation. Same as '-x'. DrawVNormal: Draws normals of vertices. Same as '-n'. DrawPNormal: Draws normals of polygons. Same as '-n'. MoreVerbose: Provides some more information on the data file(s) parsed. Same as '-m'. UnitMatrix: Forces a Unit matrix. That is, input data are not transformed at all. Same as '-u'. DrawSolid: Requests a shaded surface rendering, as opposed to isocurve surface representation. BFaceCull: Requests the removal of back facing polygons, for better visibility. DoubleBuffer: Requests drawing using a double buffer, if any. DebugObjects: Debug objects. Prints to stderr all objects read from the communcation port with the server IRIT. Same as '-d'. DebugEchoInput: Debug input. Prints to stderr all characters read from the communcation port with the server IRIT. Lowest level of communications. DepthCue: Set depth cueing on. Drawings that are closer to the viewer will be drawn in more intense color. Same as '-c'. CacheGeom: Normally piecewise linear approximation of freefroms is cached. By setting this option to FALSE, no such auxiliary data is being saved, reducing the memory overhead. Same as '-C'. FourPerFlat: Forces four polygons per almost flat region in the surface to polygon conversion. Otherwise two polygons only. Same as AntiAlias: Request the drawing of anti aliased lines. DrawSurfaceMesh: Draws control mesh/polygon of curves and surfaces, as well. Same as '-M'. DrawSurfacePoly: Draws curves and surfaces (surfaces are drawn using a set of isocurves, see -I, or polygons, see -f). Same as '-P'. StandAlone: Runs the driver in a Stand alone mode. Otherwise, the driver will attempt to communicate with the IRIT server. Same as '-s'. NumOfIsolines: Specifies number of isolines per surface, per direction. Same as '-I'. SamplesPerCurve: Specifies the samples per (iso)curve. See '-f'. LineWidth: Sets the linewidth, in pixels. Default is one pixel wide. Same as '-l' AdapIsoDir: Selects the direction of the adaptive isoline rendering. PolygonOpti: Controls the method used to subdivide a surface into polygons that approximate it. Same as '-F'. PolylineOpti: Controls the method used to subdivide a curve into polylines that approximate it. Same as '-f'. ShadingModel: One of 1 (Flat), 2 (Gouraud), or 3 (Phong). Same as TransMode: Selects between object space transformations and screen space transformation. ViewMode: Selects between perspective and orthographic views. NormalLength: Sets the length of the drawn normals in thousandths of a unit. Same as '-L'. ZClipMin: Sets the minimal clipping plane in Z. Same as '-Z'. ZClipMax: Sets the maximal clipping plane in Z. Same as '-Z'. FineNess: Controls the fineness of the surface to polygon subdivision. See '-F'.
Commands that affect the status of the display device can also be sent via the communication port with the IRIT server. The following commands are recognized as string objects with object name of "COMMAND_":
BEEP Makes some sound.
CLEAR Clears the display area. All objects are deleted.
DCLEAR Delayed clear. Same as CLEAR but delayed until next
object is sent from the server. Useful for animation.
DISCONNECT Closes connection with the server, but does not quit.
EXIT Closes connection with the server and quits.
GETOBJ NAME Requests the object named NAME that is returned
in the output channel to the server.
MSAVE NAME Saves the transformation matrix file by the name
NAME.
REMOVE NAME Request the removal of object named NAME from
display.
ANIMATE TMin TMax Dt Animates current scene from TMin to TMax in Dt
steps.
STATE COMMAND Changes the state of the display device. See below.
The following commands are valid for the STATE COMMAND above,
MoreSense: More sensitive mouse control.
LessSense: Less sensitive mouse control.
ScrnObject: Toggle screen/object transformation mode.
PerspOrtho: Toggles perspective/orthographic trans. mode.
DepthCue: Toggles depth cueing drawing.
DrawSolid: Toggles isocurve/shaded solid drawing.
ShadingMdl: Toggles shading model for solid solid drawing.
BFaceCull: Cull back facing polygons.
DblBuffer: Toggles single/double buffer mode.
AntiAlias: Toggles anti aliased lines.
DrawIntrnl: Toggles drawing of internal lines.
DrawVNrml: Toggles drawing of normals of vertices.
DrawPNrml: Toggles drawing of normals of polygons.
DSrfMesh: Toggles drawing of control meshes/polygons.
DSrfPoly: Toggles drawing of curves/surfaces.
4PerFlat: Toggles 2/4 polygons per flat surface regions.
MoreIso: Doubles the number of isolines in a surface.
LessIso: Halves the number of isolines in a surface.
FinrAprx: Doubles the number of samples per curve.
CrsrAprx: Halves the number of samples per curve.
LngrVecs: Doubles the length of displayed normal vectors.
ShrtrVecs: Halves the length of displayed normal vectors.
WiderLns: Doubles the width of the drawn lines.
NarrwLns: Halves the width of the drawn lines.
WiderPts: Doubles the width of the cross of drawn points.
NarrwPts: Halves the width of the cross of drawn points.
FinrAdapIso: Doubles the number of adaptive isocurves.
CrsrAdapIso: Halves the number of adaptive isocurves.
FinerRld: Doubles number of ruled surfaces in adaptive isocurves.
CrsrRld: Halves number of ruled surfaces in adaptive isocurves.
RuledSrfApx: Toggles ruled surface approx. in adaptive isocurves.
AdapIsoDir: Toggles the row/col direction of adaptive isocurves.
Front: Selects a front view.
Side: Selects a side view.
Top: Selects a top view.
Isometry: Selects an isometric view.
Clear: Clears the viewing area.
Obviously not all state options are valid for all drivers. The IRIT server defines in iritinit.irt several user-defined functions that exercise some of the above state commands, such as VIEWSTATE and VIEWSAVE.
In addition to state modification via communication with the IRIT server, modes can be interactively modified on most of the display devices using a pop-up menu that is activated using the right button in the transformation window}. This pop up menu is somewhat different in different drivers, but its entries closely follow the entries of the above state command table.
All the display drivers are now able to animate objects with animation curves' attributes on them. For more on the way animation curves can be created see the Animation Section of this manual
Once a scene with animation curves' attributes is being loaded into a display device, one can enter "animation" mode using the "Animation" button available in all display devices. The user is then prompt (either graphically or in a textual based interface) for the starting time, termination time and step size of the animation. The parameter space of the animation curve is serving as the time domain. The default staring and terminating times are set as the minimal and maximal parametric domain values of all animation curves. An object at time t below the minimal parametric value will be placed at the starting value of the animation curve. Similarly, an object at time t above the maximal parametric value will be placed at the termination value of the animation curve. The user can also set a bouncing back and forth mode, the number of repetitions, and if desired, request the saving of all the different scenes in the animation as seperate files so a high quality animation can be created.
The x11drvs supports the following X Defaults (searched at ~/.Xdefaults):
#ifndef COLOR
irit*MaxColors: 1
irit*Trans*BackGround: Black
irit*Trans*BorderColor: White
irit*Trans*TextColor: White
irit*Trans*SubWin*BackGround: Black
irit*Trans*SubWin*BorderColor: White
irit*Trans*CursorColor: White
irit*View*BackGround: Black
irit*View*BorderColor: White
irit*View*CursorColor: White
#else
irit*MaxColors: 15
irit*Trans*BackGround: NavyBlue
irit*Trans*BorderColor: Red
irit*Trans*TextColor: Yellow
irit*Trans*SubWin*BackGround: DarkGreen
irit*Trans*SubWin*BorderColor: Magenta
irit*Trans*CursorColor: Green
irit*View*BackGround: NavyBlue
irit*View*BorderColor: Red
irit*View*CursorColor: Red
#endif
irit*Trans*BorderWidth: 3
irit*Trans*Geometry: =150x500+510+0
irit*View*BorderWidth: 3
irit*View*Geometry: =500x500+0+0
The Motif-based display drivers contain three types of gadgets which can be
operated in the following manner. Scales: can be dragged or clicked outside
button for single (mouse's middle button) or continuous (mouse's left
button) action. Pushbuttons: activated by clicking the mouse's left button.
The control panel: allowes rotation, translation of the objects in three
axes, determine perspective ratio, viewing object from top, side, front or
isometrically, determining scale factor and clipping settings, and operate
the matrix stack.
The environment window toggles between screen or object transformation, depth cue on or off, orthographic or perspective projection, wireframe or solid display, single or double buffering, showing or hiding normals, including or excluding the surface;s mesh and curve;s control polygon, surface drawing using isolines or polygons, and four or two polygons per flat patch. Same display devices allow for the inclusion or exclusion of internal edges, and enable or disable of antialiased lines. Scales in the X11/Motif based devices set normals length, lines width, control sensitivity, the number of islolines and samples, etc. The locations of windows as set via [-g] and [-G] and/or via the configuration file overwrites in x11drvs the Geometry X11 defaults. To use the Geometry X11 default use '-G " "' and '-g " "' or set the string to empty size in the configuration file. In os2drvs, only -G is used to specify the dimensions of the parent window that holds both the viewing and the transformation window. In os2drvs, the following key strokes are available as short cuts:
Key Function
^x Quit
^s Save
^f Front View
^d Side View
^t Top View
^i Isometric VIew
^p Perspetive/Orthographic
^n View Internal Edges
^v View Vertices' Normals
^g View Polygons' Normals
^b Backface Culling
^c Depth Cue
^m View Control Mesh/Poly